/**
 * Copyright (c) 2020 Coder League
 * All rights reserved.
 *
 * File：SupplierDaoExtension.java
 * History:
 *         2020年12月27日: Initially created, Chrise.
 */
package club.coderleague.cfss.dao.extension;

import java.util.List;
import java.util.Map;

import club.coderleague.data.jpa.domain.Page;
import club.coderleague.data.jpa.repository.DataRepositoryExtension;

/**
 * 供应商数据访问对象扩展。
 * @author Chrise
 */
public interface SupplierDaoExtension extends DataRepositoryExtension {
	/**
	 * 检查供应商是否存在。
	 * @author Chrise 2020年12月27日
	 * @param entname 企业名称。
	 * @param buslicenseno 营业执照号。
	 * @param entityid 实体标识。
	 * @return 检查重复结果。
	 */
	boolean existsSupplier(String entname, String buslicenseno, Long entityid);
	
	/**
	 * 查询供应商分页数据。
	 * @author Chrise 2020年12月28日
	 * @param states 状态。
	 * @param keyword 关键字。
	 * @param buslicense 营业执照相对路径。
	 * @param folicense 食品经营许可证相对路径。
	 * @param testreport 检测报告相对路径。
	 * @param qualityreport 质量报告相对路径。
	 * @param pageIndex 分页索引。
	 * @param pageSize 分页大小。
	 * @return 供应商分页数据。
	 */
	Page<Map<String, Object>> querySupplierPageData(List<Integer> states, String keyword, 
		String buslicense, String folicense, String testreport, String qualityreport, Integer pageIndex, Integer pageSize);
	
	/**
	 * 查询供应商详情数据。
	 * @author Chrise 2020年12月29日
	 * @param entityid 实体标识。
	 * @param buslicense 营业执照相对路径。
	 * @param folicense 食品经营许可证相对路径。
	 * @param testreport 检测报告相对路径。
	 * @param qualityreport 质量报告相对路径。
	 * @return 供应商详情数据。
	 */
	Map<String, Object> querySupplierDetail(long entityid, String buslicense, String folicense, String testreport, String qualityreport);
	
	/**
	 * 查询供应商状态。
	 * @author Chrise 2021年1月10日
	 * @param supplier 供应商标识。
	 * @return 供应商状态。
	 */
	Integer querySupplierState(long supplier);
	
	/**
	 * 查询供应商名称。
	 * @author Chrise 2021年1月16日
	 * @param supplier 供应商标识。
	 * @return 供应商名称。
	 */
	String querySupplierName(long supplier);
	
	/**
	 * 加载个人信息。
	 * @author Chrise 2021年2月9日
	 * @param supplier 供应商标识。
	 * @return 个人信息。
	 */
	Map<String, Object> queryPersonalInfo(long supplier);
	
	/**
	 * 查询供应商数据。
	 * @author Chrise 2021年2月7日
	 * @param supplier 供应商标识。
	 * @param buslicense 营业执照相对路径。
	 * @param folicense 食品经营许可证相对路径。
	 * @param testreport 检测报告相对路径。
	 * @param qualityreport 质量报告相对路径。
	 * @return 供应商数据。
	 */
	Map<String, Object> querySupplierData(long supplier, String buslicense, String folicense, String testreport, String qualityreport);
}
